package com.jic.interaction.JDVOP.service;

import com.jic.interaction.JDVOP.common.utils.RestResult;
import com.jic.interaction.JDVOP.model.enyity.AfsServicebyCustomerPinPage;
import com.jic.interaction.JDVOP.model.enyity.BizRefundDetailVo;
import com.jic.interaction.JDVOP.model.enyity.CompatibleServiceDetailDTO;
import com.jic.interaction.JDVOP.model.enyity.ComponentExport;
import com.jic.interaction.JDVOP.model.vo.request.*;
import com.jic.interaction.JDVOP.model.vo.request.order.OrderPayRequest;

import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * @description: TODO
 * @author: lixuehui
 * @date: 2020/11/16 10:18
 * @Version 1.0
 */
public interface AfterSaleCommodityService {
    //校验某订单中某商品是否可以提交售后服务
    RestResult<Integer> getAvailableNumberComp(AfterSaleCommodityRequest request) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, UnsupportedEncodingException;
    //根据订单号、商品编号查询支持的服务类型
    RestResult<List<ComponentExport>> getCustomerExpectComp(AfterSaleCommodityRequest request) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;
    //根据订单号、商品编号查询支持的商品返回京东方式
    RestResult<List<ComponentExport>> getWareReturnJdComp(AfterSaleCommodityRequest request);
    //发起售后申请
    String createAfsApply(CreateAfsApplyRequest request) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;
    //如果商品需要逆向发往京东，当选择第三方配送时，使用此接口填写配送信息。
    RestResult<String> updateSendSku(UpdateSendSkuRequest request);
    //查询订单下服务单汇总信息。
    RestResult<AfsServicebyCustomerPinPage> getServiceListPage(ServiceListPageRequest request);
    //查询服务单明细信息
    RestResult<CompatibleServiceDetailDTO> getServiceDetailInfo(ServiceDetailInfoRequest request);
    //取消已经生成的服务单
    RestResult<Boolean> auditCancel(AuditCancelRequest request);
    //查询退款信息
    RestResult<List<BizRefundDetailVo>> getOrderPayByOrderId(OrderPayRequest request);
}
